package com.ruoyi.business.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 摄像头通道实例对象 videochannels
 * 
 * @author asher
 * @date 2021-12-05
 */
public class VideoChannels extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 数据库主键 */
    private Long id;

    /** 设备的唯一ID */
    @Excel(name = "设备的唯一ID")
    private String mainid;

    /** 流媒体服务器ID */
    @Excel(name = "流媒体服务器ID")
    private String mediaserverid;

    /** vhost */
    @Excel(name = "vhost")
    private String vhost;

    /** app */
    @Excel(name = "app")
    private String app;

    /** 通道名称，整个系统唯一 */
    @Excel(name = "通道名称，整个系统唯一")
    private String channelname;

    /** 部门代码 */
    @Excel(name = "部门代码")
    private String departmentid;

    /** 部门名称 */
    @Excel(name = "部门名称")
    private String departmentname;

    /** 上级部门代码 */
    @Excel(name = "上级部门代码")
    private String pdepartmentid;

    /** 上级部门名称 */
    @Excel(name = "上级部门名称")
    private String pdepartmentname;

    /** 设备的网络类型 */
    @Excel(name = "设备的网络类型")
    private String devicenetworktype;

    /** 设备的流类型 */
    @Excel(name = "设备的流类型")
    private String devicestreamtype;

    /** 使用哪种方式拉取非rtp设备的流 */
    @Excel(name = "使用哪种方式拉取非rtp设备的流")
    private String methodbygetstream;

    /** 设备类型，IPC,NVR,DVR */
    @Excel(name = "设备类型，IPC,NVR,DVR")
    private String videodevicetype;

    /** 是否自动启用推拉流 */
    @Excel(name = "是否自动启用推拉流")
    private Integer autovideo;

    /** 是否自动启用录制计划 */
    @Excel(name = "是否自动启用录制计划")
    private Integer autorecord;

    /** 录制时长（秒） */
    @Excel(name = "录制时长", readConverterExp = "秒=")
    private Long recordsecs;

    /** 录制计划模板名称 */
    @Excel(name = "录制计划模板名称")
    private String recordplanname;

    /** 设备的ipv4地址 */
    @Excel(name = "设备的ipv4地址")
    private String ipv4address;

    /** 设备的ipv6地址 */
    @Excel(name = "设备的ipv6地址")
    private String ipv6address;

    /** 设备是否有云台控制 */
    @Excel(name = "设备是否有云台控制")
    private Integer hasptz;

    /** GB28181设备的SipDevice.DeviceId */
    @Excel(name = "GB28181设备的SipDevice.DeviceId")
    private String deviceid;

    /** GB28181设备的SipChannel.DeviceId */
    @Excel(name = "GB28181设备的SipChannel.DeviceId")
    private String channelid;

    /** Rtp设备是否使用Tcp推流 */
    @Excel(name = "Rtp设备是否使用Tcp推流")
    private Integer rtpwithtcp;

    /** 非Rtp设备的视频流源地址 */
    @Excel(name = "非Rtp设备的视频流源地址")
    private String videosrcurl;

    /** Rtp设备是否使用流媒体默认rtp端口，如10000端口 */
    @Excel(name = "Rtp设备是否使用流媒体默认rtp端口，如10000端口")
    private Integer defaultrtpport;

    /** 是否启用 */
    @Excel(name = "是否启用")
    private Integer enabled;

    /** 无人观察时断开流端口，此字段为true时AutoVideo字段必须为Flase
            如果AutoVideo为true,则此字段无效 */
    @Excel(name = "无人观察时断开流端口，此字段为true时AutoVideo字段必须为Flase 如果AutoVideo为true,则此字段无效")
    private Integer noplayerbreak;

    /** ffmpeg的模板名称，可指定这个流使用哪个ffmpeg模板进行拉流
            留空时，采用默认配置进行拉流 */
    @Excel(name = "ffmpeg的模板名称，可指定这个流使用哪个ffmpeg模板进行拉流 留空时，采用默认配置进行拉流")
    private String ffmpegtemplate;

    /** 是否为可分享通道？
            如果为true,则此通道可以被推往其他服务器 */
    @Excel(name = "是否为可分享通道？ 如果为true,则此通道可以被推往其他服务器")
    private Integer issharechannel;

    /** 分享通道地址
            如果IsShareChannel为true,而ShareUrl为空，则表示此通道可以分享给GB28181服务器
            如果IsShareChannel为true,而ShareUrl不为空，则表示此通道可以分享线GB28181服务
            器的同时还可以分享给其他流媒体服务器 */
    @Excel(name = "分享通道地址 如果IsShareChannel为true,而ShareUrl为空，则表示此通道可以分享给GB28181服务器 如果IsShareChannel为true,而ShareUrl不为空，则表示此通道可以分享线GB28181服务 器的同时还可以分享给其他流媒体服务器")
    private String shareurl;

    /** 共享通道时此通道的唯一id
            gb28181时可以是deviceid
            其他服务时可以按照其他服务的
            规则来确定此id */
    @Excel(name = "共享通道时此通道的唯一id gb28181时可以是deviceid 其他服务时可以按照其他服务的 规则来确定此id")
    private String sharedeviceid;

    private String createtime;

    private String updatetime;

    public String getCreatetime() {
        return createtime;
    }

    public void setCreatetime(String createtime) {
        this.createtime = createtime;
    }

    public String getUpdatetime() {
        return updatetime;
    }

    public void setUpdatetime(String updatetime) {
        this.updatetime = updatetime;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setMainid(String mainid) 
    {
        this.mainid = mainid;
    }

    public String getMainid() 
    {
        return mainid;
    }
    public void setMediaserverid(String mediaserverid) 
    {
        this.mediaserverid = mediaserverid;
    }

    public String getMediaserverid() 
    {
        return mediaserverid;
    }
    public void setVhost(String vhost) 
    {
        this.vhost = vhost;
    }

    public String getVhost() 
    {
        return vhost;
    }
    public void setApp(String app) 
    {
        this.app = app;
    }

    public String getApp() 
    {
        return app;
    }
    public void setChannelname(String channelname) 
    {
        this.channelname = channelname;
    }

    public String getChannelname() 
    {
        return channelname;
    }
    public void setDepartmentid(String departmentid) 
    {
        this.departmentid = departmentid;
    }

    public String getDepartmentid() 
    {
        return departmentid;
    }
    public void setDepartmentname(String departmentname) 
    {
        this.departmentname = departmentname;
    }

    public String getDepartmentname() 
    {
        return departmentname;
    }
    public void setPdepartmentid(String pdepartmentid) 
    {
        this.pdepartmentid = pdepartmentid;
    }

    public String getPdepartmentid() 
    {
        return pdepartmentid;
    }
    public void setPdepartmentname(String pdepartmentname) 
    {
        this.pdepartmentname = pdepartmentname;
    }

    public String getPdepartmentname() 
    {
        return pdepartmentname;
    }
    public void setDevicenetworktype(String devicenetworktype) 
    {
        this.devicenetworktype = devicenetworktype;
    }

    public String getDevicenetworktype() 
    {
        return devicenetworktype;
    }
    public void setDevicestreamtype(String devicestreamtype) 
    {
        this.devicestreamtype = devicestreamtype;
    }

    public String getDevicestreamtype() 
    {
        return devicestreamtype;
    }
    public void setMethodbygetstream(String methodbygetstream) 
    {
        this.methodbygetstream = methodbygetstream;
    }

    public String getMethodbygetstream() 
    {
        return methodbygetstream;
    }
    public void setVideodevicetype(String videodevicetype) 
    {
        this.videodevicetype = videodevicetype;
    }

    public String getVideodevicetype() 
    {
        return videodevicetype;
    }
    public void setAutovideo(Integer autovideo) 
    {
        this.autovideo = autovideo;
    }

    public Integer getAutovideo() 
    {
        return autovideo;
    }
    public void setAutorecord(Integer autorecord) 
    {
        this.autorecord = autorecord;
    }

    public Integer getAutorecord() 
    {
        return autorecord;
    }
    public void setRecordsecs(Long recordsecs) 
    {
        this.recordsecs = recordsecs;
    }

    public Long getRecordsecs() 
    {
        return recordsecs;
    }
    public void setRecordplanname(String recordplanname) 
    {
        this.recordplanname = recordplanname;
    }

    public String getRecordplanname() 
    {
        return recordplanname;
    }
    public void setIpv4address(String ipv4address) 
    {
        this.ipv4address = ipv4address;
    }

    public String getIpv4address() 
    {
        return ipv4address;
    }
    public void setIpv6address(String ipv6address) 
    {
        this.ipv6address = ipv6address;
    }

    public String getIpv6address() 
    {
        return ipv6address;
    }
    public void setHasptz(Integer hasptz) 
    {
        this.hasptz = hasptz;
    }

    public Integer getHasptz() 
    {
        return hasptz;
    }
    public void setDeviceid(String deviceid) 
    {
        this.deviceid = deviceid;
    }

    public String getDeviceid() 
    {
        return deviceid;
    }
    public void setChannelid(String channelid) 
    {
        this.channelid = channelid;
    }

    public String getChannelid() 
    {
        return channelid;
    }
    public void setRtpwithtcp(Integer rtpwithtcp) 
    {
        this.rtpwithtcp = rtpwithtcp;
    }

    public Integer getRtpwithtcp() 
    {
        return rtpwithtcp;
    }
    public void setVideosrcurl(String videosrcurl) 
    {
        this.videosrcurl = videosrcurl;
    }

    public String getVideosrcurl() 
    {
        return videosrcurl;
    }
    public void setDefaultrtpport(Integer defaultrtpport) 
    {
        this.defaultrtpport = defaultrtpport;
    }

    public Integer getDefaultrtpport() 
    {
        return defaultrtpport;
    }
    public void setEnabled(Integer enabled) 
    {
        this.enabled = enabled;
    }

    public Integer getEnabled() 
    {
        return enabled;
    }
    public void setNoplayerbreak(Integer noplayerbreak) 
    {
        this.noplayerbreak = noplayerbreak;
    }

    public Integer getNoplayerbreak() 
    {
        return noplayerbreak;
    }
    public void setFfmpegtemplate(String ffmpegtemplate) 
    {
        this.ffmpegtemplate = ffmpegtemplate;
    }

    public String getFfmpegtemplate() 
    {
        return ffmpegtemplate;
    }
    public void setIssharechannel(Integer issharechannel) 
    {
        this.issharechannel = issharechannel;
    }

    public Integer getIssharechannel() 
    {
        return issharechannel;
    }
    public void setShareurl(String shareurl) 
    {
        this.shareurl = shareurl;
    }

    public String getShareurl() 
    {
        return shareurl;
    }
    public void setSharedeviceid(String sharedeviceid) 
    {
        this.sharedeviceid = sharedeviceid;
    }

    public String getSharedeviceid() 
    {
        return sharedeviceid;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("mainid", getMainid())
            .append("mediaserverid", getMediaserverid())
            .append("vhost", getVhost())
            .append("app", getApp())
            .append("channelname", getChannelname())
            .append("departmentid", getDepartmentid())
            .append("departmentname", getDepartmentname())
            .append("pdepartmentid", getPdepartmentid())
            .append("pdepartmentname", getPdepartmentname())
            .append("devicenetworktype", getDevicenetworktype())
            .append("devicestreamtype", getDevicestreamtype())
            .append("methodbygetstream", getMethodbygetstream())
            .append("videodevicetype", getVideodevicetype())
            .append("autovideo", getAutovideo())
            .append("autorecord", getAutorecord())
            .append("recordsecs", getRecordsecs())
            .append("recordplanname", getRecordplanname())
            .append("ipv4address", getIpv4address())
            .append("ipv6address", getIpv6address())
            .append("hasptz", getHasptz())
            .append("deviceid", getDeviceid())
            .append("channelid", getChannelid())
            .append("rtpwithtcp", getRtpwithtcp())
            .append("videosrcurl", getVideosrcurl())
            .append("defaultrtpport", getDefaultrtpport())
            .append("enabled", getEnabled())
            .append("noplayerbreak", getNoplayerbreak())
            .append("ffmpegtemplate", getFfmpegtemplate())
            .append("issharechannel", getIssharechannel())
            .append("shareurl", getShareurl())
            .append("sharedeviceid", getSharedeviceid())
            .toString();
    }
}
